Изучаем Delphi. Библиотека VCL. Урок 14. Используем TActionList

На двух прошлых уроках мы с вами посмотрели, как можно динамически создавать компоненты управления. Но у созданных нами кнопок был один недостаток - при нажатии на них ничего не происходило. Давайте сейчас посмотрим, как к созданной динамически кнопке можно добавить (также динамически) код, который будет выполнятся при нажатии на ней.

Возьмите за основу программу из урока 12. Добавьте на её форму компонент ActionList с вкладки Standard:

14_1.gif (8716 b)

Для добавления действия в наш компонент ActionList1 сделайте двойной щелчок на нем. Появится окно Editing Form1.ActionList1. Нажмите в нем на кнопку New Action:

14_2.gif (8716 b)

В правом списке появится новое действие Action1:

14_3.gif (8716 b)

Сделайте на нем двойной щелчок для перехода в окно кода. Добавьте следующие строки:

procedure TForm1.Action1Execute(Sender: TObject);
begin
  MessageDlg('Событие для новой кнопки',
    mtConfirmation,
    [mbOK],
    0);
end;

Мы добавили в нашу программу некоторое действие (появление MessageBox'а ). Это действие называется Action1. Теперь свяжем этой действие с нашей кнопкой.

Для этого добавьте в обработчик Button1Click следующую строку:

...
  btn.Caption:='Новая кнопка';
  btn.Action:=Action1;
  //Создаем новый Edit
  ...

В этой строке мы связываем свойство Action для кнопки с конкретным событием Action1.

Это свойство присутствует и в Инспекторе объектов. Например, для нашей обычной кнопки Button1 оно выглядит так:

14_4.gif (8716 b)

Теперь запускайте программу, нажимайте на кнопку "Дополнительно", потом на нашу динамически созданную кнопку. Появится MessageBox - как мы и задумывали:

14_5.gif (8716 b)

Таким образом мы присоединили к динамически созданной кнопке некоторое действие.



Автор Алексеев Игорь..
Hosted by uCoz